package org.jumiz.javafx.client.pages.commonents;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Screen;
import org.jumiz.javafx.client.util.FileUtil;
import org.jumiz.javafx.client.util.SwitchScene;

import java.lang.reflect.Method;

/**
 * 统一场景大小
 */
public class JumizScene extends Scene {

    public JumizScene(Parent root) {
        this(root, SwitchScene.defaultWidth(), SwitchScene.defaultHeight());
    }

    public JumizScene(Parent root, double width, double height) {
        super(root, width, height, Color.WHITE);
        this.getStylesheets().clear();
        this.getStylesheets().add(FileUtil.loadCss("static/css/style.css").toExternalForm());
//        widthProperty().subtract(newValue.doubleValue());
//        this.initListener();
    }

    private void initListener() {
        super.widthProperty().addListener((observable, oldValue, newValue) -> {
//            scene..setW(newValue.doubleValue());
            System.out.println("width" + newValue);
            widthProperty().subtract(newValue.doubleValue());
//            try {
//                Method method = Scene.class.getDeclaredMethod("init", double.class, double.class);
//                method.setAccessible(true);
//                method.invoke(this, SwitchScene.currentWidth(), SwitchScene.currentHeight());
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
        });

        super.heightProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//                scene.setPrefHeight(newValue.doubleValue());

            }
        });
    }
}
